/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sd_proj1.monSolution;

/**
 *
 * @author Pedro Costa Correia - 32795
 * @author Valter Pedro Lopes Vicente - 39360
 */
public class FifoNode {
	/**
	 *  Identificação do cliente correspondente ao pedido.
	 *
	 *    @serialField threadId
	 */
	private int threadId;
		/**
	 *  Identificação do tipo do pedido.
	 *
	 *    @serialField typeRequest
	 */
	private char typeRequest;

	/**
	 * Construtor nulo.
	 */
	public FifoNode() {
	}

	/**
	 * Construtor usado quando o pedido é efectuado por um cliente.
	 * @param threadId Identificação do cliente.
	 * @param typeRequest Tipo de pedido associado - 'C'.
	 */
	public FifoNode(int threadId, char typeRequest) {
		this.threadId = threadId;
		this.typeRequest = typeRequest;
	}

	/**
	 * Construtor usado quando o pedido é efectuado por um artesão (ou quando é necessário um pedido vazio).
	 * @param typeRequest Tipo de pedido associado - 'G' e 'P' (caso do vazio, 'E').
	 */
	public FifoNode(char typeRequest) {
		this.typeRequest = typeRequest;
	}

	/**
	 * Verifica qual o cliente que corresponde ao pedido, quando é um pedido de um cliente.
	 * @return A identificação do cliente.
	 */
	public int addressACustomer() {
		return threadId;
	}

	/**
	 * Verifica o tipo de pedido efectuado.
	 * @return Tipo de pedido.
	 */
	public char appraiseSit() {
		return typeRequest;
	}
}
